package com.personal.mapper;

import com.personal.bo.CommentListBO;
import com.personal.bo.NewResourcesByCatBO;
import com.personal.po.ResourcesPO;
import com.personal.po.ResourcesViewPO;
import com.personal.pojo.Resources;
import com.personal.pojo.ResourcesImg;
import com.personal.utils.Result;
import com.personal.vo.CommentListVO;
import com.personal.vo.ResourcesVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ResourcesMapper {

    /**
     * 查询最新的资源文章列表
     * @return
     */
    List<ResourcesPO> queryNewResources();

    /**
     * 根据资源文章id查询资源图片
     * @param id
     * @return
     */
    List<ResourcesImg> queryResourcesImg(Integer id);

    /**
     * 查询资源文章id详情
     * @param id
     * @return
     */
    ResourcesVO queryResourcesById(Integer id);

    /**
     * 根据id查询资源的评价等级数量
     * @param id
     * @param level
     * @return
     */
    int queryCommonLevelCountBy(@Param("id") int id,@Param("level") int level);

    /**
     * 查询资源评价列表
     * @param commentListBO
     * @return
     */
    List<CommentListVO> queryResourcesCommentList(CommentListBO commentListBO);

    /**
     * 获取所有的资源文章id
     * @return
     */
    List<Long> getAllResourcesId();

    /**
     * 通过资源id查询资源浏览量
     * @param resourcesId
     * @return
     */
    ResourcesViewPO getById(Long resourcesId);

    /**
     * 更新资源的浏览量
     * @param resourcesViewPo
     * @return
     */
    int updateResourcesView(ResourcesViewPO resourcesViewPo);

    /**
     * 通过参数查询最新的资源文章
     * @param newResourcesByCatBO
     * @return
     */
    List<ResourcesPO> queryNewResourcesByCatAndLimit(NewResourcesByCatBO newResourcesByCatBO);

    /**
     * 通过id查询资源
     * @param resourcesId
     * @return
     */
    Resources getResourcesById(Integer resourcesId);

    /**
     * 添加资源
     * @param resources
     * @return
     */
    Integer addResources(Resources resources);

    /**
     * 通过分类id查询分类名称
     * @param catId
     * @return
     */
    String getResourcesCatName(Integer catId);
}